//package com.xbongbong.saas.enums;
//
//import com.xbongbong.saas.enums.business.ContractEnum;
//import lombok.Getter;
//
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.List;
//import java.util.Objects;
//
///**
// * @author haibin.zhang
// * @version v1.0
// * @date 2019/9/2 11:08
// * @since v1.0
// */
//@Getter
//public enum SelectProductBusinessEnum {
//    //合同(产品名称、编号、规格、条码、单价、折扣、售价、数量、备注、单位、小计、已出数量、待出数量、退货数量)
//    CONTRACT(XbbRefTypeEnum.CONTRACT.getCode(),Arrays.asList(SelectProductEnum.PRODUCT_NAME,SelectProductEnum.PRODUCT_NO,SelectProductEnum.SPECIFICATION,SelectProductEnum.BARCODE,SelectProductEnum.PRICE,SelectProductEnum.DISCOUNT,SelectProductEnum.SELLING_PRICE,SelectProductEnum.NUM,SelectProductEnum.MEMO,SelectProductEnum.UNIT,SelectProductEnum.SUBTOTAL,SelectProductEnum.OUTSTOCK_NUM,SelectProductEnum.WAIT_OUTSTOCK_NUM,SelectProductEnum.RETURN_NUM)),
//    //机会
//    SALES_OPPORTUNITY(XbbRefTypeEnum.SALES_OPPORTUNITY.getCode(),Arrays.asList(SelectProductEnum.PRODUCT_NAME,SelectProductEnum.PRODUCT_NO,SelectProductEnum.SPECIFICATION,SelectProductEnum.BARCODE,SelectProductEnum.PRICE,SelectProductEnum.DISCOUNT,SelectProductEnum.SELLING_PRICE,SelectProductEnum.NUM,SelectProductEnum.MEMO,SelectProductEnum.UNIT,SelectProductEnum.SUBTOTAL)),
//    //TODO 报价单
//    //退货退款
//    REFUND(XbbRefTypeEnum.REFUND.getCode(),Arrays.asList(SelectProductEnum.PRODUCT_NAME,SelectProductEnum.PRODUCT_NO,SelectProductEnum.SPECIFICATION,SelectProductEnum.BARCODE,SelectProductEnum.PRICE,SelectProductEnum.NUM,SelectProductEnum.MEMO,SelectProductEnum.UNIT,SelectProductEnum.SUBTOTAL,SelectProductEnum.BATCH,SelectProductEnum.PRODUCE_DATE,SelectProductEnum.GUARANTEE_PERIOD,SelectProductEnum.SOURCE_DOC,SelectProductEnum.INSTOCK_NUM,SelectProductEnum.WAIT_INSTOCK_NUM)),
//    //供应商
//    SUPPLIER(XbbRefTypeEnum.SUPPLIER.getCode(),Arrays.asList(SelectProductEnum.PRODUCT_NAME,SelectProductEnum.PRODUCT_NO,SelectProductEnum.SPECIFICATION)),
//    //采购合同
//    PURCHASE(XbbRefTypeEnum.PURCHASE.getCode(),Arrays.asList(SelectProductEnum.PRODUCT_NAME,SelectProductEnum.PRODUCT_NO,SelectProductEnum.SPECIFICATION,SelectProductEnum.BARCODE,SelectProductEnum.NUM,SelectProductEnum.UNIT,SelectProductEnum.INSTOCK_NUM,SelectProductEnum.WAIT_INSTOCK_NUM,SelectProductEnum.RETURN_NUM,SelectProductEnum.PRICE,SelectProductEnum.SUBTOTAL,SelectProductEnum.MEMO)),
//    //采购退货
//    RETURN_PURCHASE(XbbRefTypeEnum.RETURNED_PURCHASE.getCode(),Arrays.asList(SelectProductEnum.PRODUCT_NAME,SelectProductEnum.PRODUCT_NO,SelectProductEnum.SPECIFICATION,SelectProductEnum.NUM,SelectProductEnum.UNIT,SelectProductEnum.OUTSTOCK_NUM,SelectProductEnum.WAIT_OUTSTOCK_NUM,SelectProductEnum.PRICE,SelectProductEnum.SUBTOTAL,SelectProductEnum.MEMO,SelectProductEnum.BATCH,SelectProductEnum.PRODUCE_DATE,SelectProductEnum.GUARANTEE_PERIOD,SelectProductEnum.SOURCE_DOC)),
//    //装配单
//    ASSEMBLE(XbbRefTypeEnum.ASSEMBLE.getCode(),Arrays.asList(SelectProductEnum.PRODUCT_NAME,SelectProductEnum.PRODUCT_NO,SelectProductEnum.SPECIFICATION,SelectProductEnum.BARCODE,SelectProductEnum.WAREHOUSE,SelectProductEnum.NUM,SelectProductEnum.UNIT,SelectProductEnum.STOCK,SelectProductEnum.COST,SelectProductEnum.TOTAL_COST,SelectProductEnum.MEMO,SelectProductEnum.BATCH,SelectProductEnum.PRODUCE_DATE,SelectProductEnum.GUARANTEE_PERIOD)),
//    //调拨单
//    TRANSFER(XbbRefTypeEnum.TRANSFER.getCode(),Arrays.asList(SelectProductEnum.PRODUCT_NAME,SelectProductEnum.PRODUCT_NO,SelectProductEnum.SPECIFICATION,SelectProductEnum.BARCODE,SelectProductEnum.NUM,SelectProductEnum.UNIT,SelectProductEnum.STOCK,SelectProductEnum.PRICE,SelectProductEnum.SUBTOTAL,SelectProductEnum.MEMO,SelectProductEnum.BATCH,SelectProductEnum.PRODUCE_DATE,SelectProductEnum.GUARANTEE_PERIOD)),
//    //盘点单
//    INVENTORY(XbbRefTypeEnum.INVENTORY.getCode(),Arrays.asList(SelectProductEnum.PRODUCT_NAME,SelectProductEnum.PRODUCT_NO,SelectProductEnum.SPECIFICATION,SelectProductEnum.BARCODE,SelectProductEnum.NUM,SelectProductEnum.STOCK,SelectProductEnum.MEMO,SelectProductEnum.BATCH,SelectProductEnum.PRODUCE_DATE,SelectProductEnum.GUARANTEE_PERIOD,SelectProductEnum.INVENTORY)),
//    //工单
//    WORK_ORDER(XbbRefTypeEnum.WORK_ORDER.getCode(),Arrays.asList(SelectProductEnum.PRODUCT_NAME,SelectProductEnum.PRODUCT_NO,SelectProductEnum.SPECIFICATION,SelectProductEnum.BARCODE,SelectProductEnum.NUM,SelectProductEnum.UNIT,SelectProductEnum.PRICE,SelectProductEnum.SUBTOTAL)),
//    //期初库存
//    OPENING_INVENTORY(null,Arrays.asList(SelectProductEnum.PRODUCT_NAME,SelectProductEnum.PRODUCT_NO,SelectProductEnum.SPECIFICATION,SelectProductEnum.BARCODE,SelectProductEnum.NUM,SelectProductEnum.UNIT,SelectProductEnum.MEMO,SelectProductEnum.BATCH,SelectProductEnum.PRODUCE_DATE,SelectProductEnum.GUARANTEE_PERIOD)),
//    //
//    UNKNOW(XbbRefTypeEnum.UNKNOWN.getCode(),new ArrayList<>()),
//
//    ;
//
//    private Integer businessType;
//
//    private List<SelectProductEnum> headList;
//
//    SelectProductBusinessEnum(Integer businessType, List<SelectProductEnum> headList) {
//        this.businessType = businessType;
//        this.headList = headList;
//    }
//
//    public static SelectProductBusinessEnum getByBusinessType(Integer businessType){
//        for (SelectProductBusinessEnum selectProductBusinessEnum : SelectProductBusinessEnum.values()){
//            if (Objects.equals(selectProductBusinessEnum.getBusinessType(),businessType)){
//                return selectProductBusinessEnum;
//            }
//        }
//        return UNKNOW;
//    }
//
//    public static String getAttrByBusinessType(Integer businessType, String attr) {
//        for (SelectProductBusinessEnum selectProductBusinessEnum : SelectProductBusinessEnum.values()){
//            if (Objects.equals(selectProductBusinessEnum.getBusinessType(),businessType)){
//                for (SelectProductEnum selectProductEnum : selectProductBusinessEnum.getHeadList()){
//                    if (Objects.equals(attr,selectProductEnum.getProductAttr())){
//                        return selectProductEnum.getAttr();
//                    }
//                }
//            }
//        }
//        return "";
//    }
//}
